feat: add reusable EmptyState component and adopt across pages#2017
feat: add reusable EmptyState component and adopt across pages#2017elizabetdev wants to merge 9 commits intomainfrom
Conversation
Extract repeated empty/setup state UI pattern into a shared EmptyState component and adopt it in DBSearchPage and SessionsPage. Made-with: Cursor
Replace ad-hoc inline empty states with the reusable EmptyState component on Alerts, Dashboards, Search, Service Map, Sessions, and Chart Editor pages. Extend EmptyState to support card/default variants, PaperProps, BoxProps, and fullWidth option. Made-with: Cursor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: af48c6a The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Knip - Unused Code Analysis⚪ No changes detected (0 issues on both main and PR) What is this?Knip finds unused files, dependencies, and exports in your codebase. Run |
PR Review✅ No critical issues found. The PR is a clean, well-structured refactoring that introduces a reusable A few minor observations:
|
The container was unintentionally narrowed to 600px for all states. Now only the empty state uses the narrow centered layout while the populated alert list keeps the original wide container. Made-with: Cursor
E2E Test Results❌ 2 tests failed • 115 passed • 3 skipped • 1087s
Tests ran across 4 shards in parallel. |
Always apply mx="auto" on default variant instead of conditionally based on maw presence. Remove fragile <br /> from SessionsPage description — natural wrapping via maw is sufficient. Made-with: Cursor
Made-with: Cursor
Replace ad-hoc inline empty states with EmptyState component on Saved Searches and Dashboards list pages. Add vertical centering for empty states using flex layout. Use minHeight instead of height on Dashboards to prevent squishing when content exists. Made-with: Cursor
The title prop has no default value — update agent_docs to match. Made-with: Cursor
The app-content-scroll-container is already viewport-sized with overflowY: scroll. Using 100vh on child pages caused double scrollbars. 100% correctly fills the parent scroll container. Made-with: Cursor
Made-with: Cursor
Summary
EmptyStatecomponent with two variants (defaultfor full-page states,cardfor inline/bordered states), optional icon, title, description, and action slot viachildrenagent_docs/code_style.mdheight: 100%instead of100vhfor pages inside the nav layout)Screenshots
Test plan